package persistencia.cv;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Collection;
import java.util.LinkedList;

import negocio.cv.Provincia;
import negocio.cv.TipoEstudio;
import negocio.cv.TipoNivel;

import persistence.DBManager;

public class DAOTipoEstudio implements DAOInterface {

	
	private DBManager manager;
	private DAOTitulo daoTitulo;
	private DAOInstitucion daoInstitucion;

	public DAOTipoEstudio(DBManager manager) {
		this.manager = manager;
		daoTitulo=new DAOTitulo(manager);
		daoInstitucion=new DAOInstitucion(manager);
	}

	@Override
	public void delete(Object b) {
		// TODO Auto-generated method stub

	}

	@Override
	public TipoEstudio get(String businessId) {
		TipoEstudio t = null;
		ResultSet rs = null;
		String query;
		int id = Integer.parseInt(businessId);
		try {
			query = "call tesis.tipoestudio_get("+id+",@nombre,@descripcion)";
			rs = manager.openCallableQuery(query);
			rs.first();
			String desc=rs.getObject(3)!=null?rs.getObject(3).toString():null;
			t=new TipoEstudio(id,rs.getObject(1).toString(),desc);
			

		} catch (SQLException exc) {
			exc.printStackTrace();
		}
		return t;
	}

	@Override
	public LinkedList<TipoEstudio> getAll() {
		ResultSet rs = null;
		LinkedList<TipoEstudio> tipos=new LinkedList<TipoEstudio>();
		TipoEstudio tipo=null;
		int id=-1;
		String query;
	   
	        try {
	            query="call tesis.tipoestudio_getall()";
	                   
	            rs=manager.openCallableQuery(query);  
	          
	          while(rs.next())
	          { 
	        	  id=rs.getInt(1);
	        	  tipo=new TipoEstudio(id,rs.getObject(2).toString(),null,daoTitulo.getAll(String.valueOf(id)),
	        			  daoInstitucion.getAll(String.valueOf(id)));
	        	  tipos.add(tipo);
	          }
	        }catch(SQLException e)
	        {
	        	e.printStackTrace();
	        }
	        return tipos; 
	
	}

	@Override
	public int insert(Object b) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public void update(Object b) {
		// TODO Auto-generated method stub

	}

}
